package com.sdhs.myproject.mapper;

import java.util.List;
import com.sdhs.myproject.domain.GcMyprojectInformation;

/**
 * 我的项目--项目基本信息Mapper接口
 *
 * @author andong
 * @date 2025-03-11
 */
public interface GcMyprojectInformationMapper
{
    /**
     * 查询我的项目--项目基本信息
     *
     * @param id 我的项目--项目基本信息主键
     * @return 我的项目--项目基本信息
     */
    public GcMyprojectInformation selectGcMyprojectInformationById(Long id);
    //根据项目编号查询是否存在项目
    public GcMyprojectInformation selectProjectInformationByNumber(String projectNumber);
    /**
     * 查询--汇款填报总金额 -- 管理成本维护总金额 --合同支付跟踪总金额
     *  用于计算项目实施期利润率
     * @param id 我的项目--项目基本信息主键
     * @return 我的项目--项目基本信息
     */
    public GcMyprojectInformation selectImplementUtilizationById(Long id);
    /**
     * 查询我的项目--项目id以及项目经理id
     *
     * @param id 我的项目--项目基本信息主键
     */
    public GcMyprojectInformation selectGcMyProjectInformationByProject(Long id);
    /**
     * 查询我的项目--项目id以及项目经理id
     *
     * @param id 我的项目--项目基本信息主键
     */
    public GcMyprojectInformation selectDeptByProject(Long id);
   /**
    * 根据creater部门id
   */
    public GcMyprojectInformation selectDeptByName(String userName);
    /**
     * 查询我的项目--项目基本信息列表
     *
     * @param gcMyprojectInformation 我的项目--项目基本信息
     * @return 我的项目--项目基本信息集合
     */
    public List<GcMyprojectInformation> selectGcMyprojectInformationList(GcMyprojectInformation gcMyprojectInformation);

    public List<GcMyprojectInformation> selectMyprojectList(GcMyprojectInformation gcMyprojectInformation);

    /**
     * 新增我的项目--项目基本信息
     *
     * @param gcMyprojectInformation 我的项目--项目基本信息
     * @return 结果
     */
    public int insertGcMyprojectInformation(GcMyprojectInformation gcMyprojectInformation);

    /**
     * 修改我的项目--项目基本信息
     *
     * @param gcMyprojectInformation 我的项目--项目基本信息
     * @return 结果
     */
    public int updateGcMyprojectInformation(GcMyprojectInformation gcMyprojectInformation);
    /**
     * 设置项目--项目状态为督办
     *
     * @param gcMyprojectInformation 设置项目--项目状态为督办
     * @return 结果
     */
    public int markSupervise(GcMyprojectInformation gcMyprojectInformation);

    /**
     * 项目交工，竣工，项目部组建修改项目状态
     * */
    public int updateGcMyProject(GcMyprojectInformation gcMyprojectInformation);

    /**
     * 删除我的项目--项目基本信息
     *
     * @param id 我的项目--项目基本信息主键
     * @return 结果
     */
    public int deleteGcMyprojectInformationById(Long id);

    /**
     * 批量删除我的项目--项目基本信息
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteGcMyprojectInformationByIds(Long[] ids);
}
